package com.event.management.frontend.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * 订单详情DTO
 */
@Data
public class OrderDetailDTO implements Serializable {

    private static final long serialVersionUID = 1L;
    
    /**
     * 订单ID
     */
    private Long id;
    
    /**
     * 活动ID
     */
    private Long eventId;
    
    /**
     * 活动名称
     */
    private String eventName;
    
    /**
     * 活动开始时间
     */
    private Date eventStartTime;
    
    /**
     * 活动地点
     */
    private String eventLocation;
    
    /**
     * 票种ID
     */
    private Long ticketId;
    
    /**
     * 票种名称
     */
    private String ticketName;
    
    /**
     * 票价
     */
    private BigDecimal ticketPrice;
    
    /**
     * 购买数量
     */
    private Integer quantity;
    
    /**
     * 订单总金额
     */
    private BigDecimal totalPrice;
    
    /**
     * 订单状态
     */
    private String status;
    
    /**
     * 状态描述
     */
    private String statusDesc;
    
    /**
     * 报名人姓名
     */
    private String realName;
    
    /**
     * 报名人手机号
     */
    private String phone;
    
    /**
     * 联系人邮箱
     */
    private String contactEmail;
    
    /**
     * 收货详细地址
     */
    private String address;
    
    /**
     * 邮政编码
     */
    private String zipCode;
    
    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthDate;
    
    /**
     * 国家
     */
    private String country;
    
    /**
     * 备注说明
     */
    private String note;
    
    /**
     * 创建时间
     */
    private Date createdAt;
    
    /**
     * 支付时间
     */
    private Date paidAt;
    
    /**
     * 电子票列表
     */
    private List<UserTicketDTO> tickets;
} 